XSS 与 CSRF 有什么区别
XSS与CSRF主要有以下区别:
CSRF需要用户先登录网站,获取cookie,XSS不需要登录则直接可以攻击。
XSS更像漏洞,CSRF更像攻击,xss是一种存在在网站的中的漏洞,攻击者可以利用这些漏洞进行攻击,而CSRF则是一种黑客的攻击手段。
只要有XSS,就可以发起CSRF类似攻击。
CSRF是利用网站本身的漏洞,去请求网站的api,XSS是向网站注入js代码,然后执行js里的代码,篡改网站的内容。
xss:跨站脚本攻击、诱骗用户点击恶意链接盗取用户cookie进行攻击、不需要用户进行登录、xss除了利用cookie还可以篡改网页等
csrf:跨站请求伪造、无法获取用户的cookie而是直接冒充用户、需要用户登录后进行操作
首先我们要对xss和csrf进行足够的了解才能分清楚两者的区别。
xss:中文名称跨站脚本攻击,通常出现在搜索框、留言板、评论区等地方
分类:反射性、存储型、DOM型
攻击方式:构造恶意链接,诱骗用户点击盗取用户的cookie信息
漏洞危害:xss蠕虫、会话、流量劫持、网站挂马、盗取cookie
防护方法:设置黑名单和白名单、对用户输入进行过滤、入参字符过滤、出参字符转义、设置httponly
csrf漏洞:中文名称跨站请求伪造,攻击者冒充用户身份执行用户操作
检测漏洞:抓取一个请求包,去掉referer字段进行访问,如果访问有效则存在漏洞
危害:盗用用户身份、执行用户操作,修改信息
防护方法:
1、设置referer字段;但是并不是所有服务器在任何时候都可以接受referer字段,所以这个方法存在一定的局限性
2、设置验证码;在用户操作的过程中设置身份确认的验证码,该方法会很有用,不过验证码频繁的话会影响用户体验
3、设置token值,在用户请求中设置一个随机没有规律的token值可以有效的防止攻击者利用漏洞攻击
从上我们可以总结出:
xss:跨站脚本攻击、诱骗用户点击恶意链接盗取用户cookie进行攻击、不需要用户进行登录、xss除了利用cookie还可以篡改网页等
csrf:跨站请求伪造、无法获取用户的cookie而是直接冒充用户、需要用户登录后进行操作